/// @TOPDESC: this logger has its own module

#ifndef XM_LOGGER_HH
#define XM_LOGGER_HH

#include <string>

#include "XM_noncopyable.hh"
#include "pch.hh"

XM_NAMESPACE_BEGIN

enum XM_LogLevel
{
    INFO,
    ERROR,
    FATAL,
    DEBUG,
};

struct XM_Logger : private XM_noncopyable
{
    static XM_Logger& instance();
    void setLogLevel(int level);
    void log(std::string msg);

private:
    int logLevel__;
};

XM_NAMESPACE_END

#endif // header file protect